Grouping objects

??=[entries.grouping] Sometimes you wish to frame or otherwise treat a rectangle of objects as a single object. This is possible with special excursions of this form:
\begin{defs1}
\vert\save\vert $t$\ \vert\merge\vert \dots \vert\restore\vert \dots
\end{defs1}
will make the entire rectangle of entries with the host entry in one corner and the target entry t in the other corner the `current entry' until the ||. Here is an example where we frame a couple of objects and point from the frame:
\begin{code}
\diagram
0,{-1} & 0,0
\save\go[1,2]\merge\framed<5pt>
\xto[0,-1]...
...re
& 0,1 & 0,2 & 0,3 \\
1,{-1} & 1,0 & 1,1 & 1,2 & 1,3 \enddiagram
\end{code}
will typeset

$\displaystyle \docode$

As you can see, the center of the ||d object is the same as the one of the target preceeding it.

Here is a more advanced example where we create two ||d objects with center in their center, name them and then connect to them:
\begin{code}\diagram
\save
\go[dr]\merge\go+C\merge\go=''g1''\framed
\restor...
...store
\save \go''2,1''\xdashed''g2'' \vert>\tip \restore
\enddiagram
\end{code}

$\displaystyle \NoCompileAllDiagrams$$\displaystyle \docode$

can be typeset by The centering trick is achieved by using || twice in | [dr]+C="g|" : the second just merges with a dummy object with center where we want the final merged object to be centered! Then we can make arrows from/to the two frames by using the two new targets |"g1"| and |"g2"|.
Merging is part of the "v3" position language.